讓全世界使用 nodejs 的朋友都驚呆了!!!居然讓 path 這個 module 的速度快 18000% 倍,小編點進去看之後,發現就只是「江湖一點訣,說破不值錢」而已,但要達到也是要費一大番功夫,完全是翻掉重寫了。
1. 大家都知道 REGEX 很方便但速度真的很慢,所以作者改用最原始的 charCodeAt 一個字元一個字元來判斷,光是這樣子速度就提升應該好幾倍。
2. 避免不必要的 array 建立。
3. 可以儘早 return 的內容就儘早 return,減少不必要的運算產生。這其實是一種 coding style,小編現在寫 code 也儘量依照這個原則來處理,除了上面這個好處之外,對於 if 的階層可以變的更少,code 也變的更乾淨好維護。
4. 跟第 2 點應該差不多,只不過這是針對 string。
5. 應該是指不必要的 string 迴圈可以合併起來吧。
如果對這些程式碼有興趣的朋友,可以看看 nodejs/node 的 b212be08f62a48656c5befd8be0a82d691ea66e4 lib/path.js 喔。
Optimization strategies include:
* Replacing regexps with manual parsers
* Avoiding unnecessary array creation (including split() + join())
* Returning earlier where possible to avoid unnecessary work
* Minimize unnecessary string creation and concatenations
* Combining string iterations
原始 commit:https://github.com/nodejs/node/commit/b212be08f62a48656c5befd8be0a82d691ea66e4
---
原本從 ant 那邊的文章被刪掉了,小編就重 po 一次囉。
---
#node #nodejs #regex